1. Field of the Invention
This invention relates to high speed digital data communications. More specifically, this invention relates to high speed bi-directional digital data communications through a standard parallel printer port of a computer to an external communications device. And even more specifically, this invention relates to the transmission of digital audio information through a computer's standard parallel printer port to an external digital audio adapter.
A portion of the disclosure of this patent document contains material that is subject to copyright protection. The copyright owner has no objection to the facsimile reproduction by anyone of the patent document or the patent disclosure, as the material appears in the Patent and Trademark Office patent file or records, but otherwise reserves all copyright fights whatsoever.
2. Description of the Related Art
The arrival of multimedia presentations gives owners of existing computers a whole slough of new and aggravating problems. Consider for example a computer user who wants to play or record digital audio sound using their computer. Many of today's existing computers lack the ability to play or record digital audio sound so our computer user must look to acquire new hardware and software to add this capability to their computers. One solution for achieving digital audio capability is for our computer user to buy an internal audio board to put into their computer. Unfortunately, a board level solution is not ideal for all applications for some of the following reasons: (1) the computer may not have any free slots available, (2) the computer may not have any slots at all as is true with most notebook computers, and (3) the computer user may not have the technical skills to install a board level product into the computer.
A better solution rectifying the above problems is to use an external communications device, with digital audio sound capability, that attaches easily to a computer's standard parallel printer port. Most, if not all computers, can print to a parallel printer. Since this type of device does not use slots, even the most unsophisticated computer user can install this type of device on their computer.
However, an external communications device with the ability to play and record digital audio and that attaches to the parallel printer port only addresses the connection problem. A bigger part of the problem is that the standard parallel printer port, the interface mechanism if you will, is simply too slow in transmitting information for processing real time digital audio. The slow transmission speed of the parallel printer interface is even now starting to impact print speeds as printer resolutions approach 1000 dots per inch.
The other part of the problem is the overhead requirements of the parallel printer port interface on the host computer's CPU usage. An I/O instruction is a computer command intended to Input or Output data between the computer and an external device connected to a specific I/O port (or address). For example, when an 80386 or 80486 microprocessor (CPU) is operating in protected mode when running Microsoft Windows, each I/O instruction takes an extra 25 (80386) or 30 (80486) CPU clock cycles. These extra CPU clock cycles are necessary to verify that the current I/O instruction may use that particular I/O port. Repeated use of I/O instructions, obviously, incurs a high overhead on CPU usage.
Using the standard parallel printer interface in an IBM compatible computer for example, repeated I/O instructions are necessary for every eight bits of data sent through the parallel printer port using the required following sequence: (1) output the data to the parallel printer port, (2) set the parallel printer port strobe line (the data is available to the printer), and (3) reset the printer port's strobe line (the data is no longer available to the printer).
Another problem with using the parallel printer port is that not all "standard" parallel printer ports are equal. Even when using an IBM compatible computer and the parallel printer port interface as defined by IBM, there is a substantial difference in the maximum data throughput speeds for each computer's parallel printer port. This combination of factors makes using the parallel printer port for non-printer applications, other than printing to older parallel printers, an exceedingly slow operation.
The effective I/O channel transfer speed of a typical computer operating at a CPU speed of 33 MHz (clock cycles per second) when sending information through a standard parallel printer port slows down to a maximum possible I/O channel transfer speed of around 1 MHz for I/O instructions. Because of the combined necessity of preserving compatibility with older parallel printer port interfaces and the overhead requirements of the parallel printer interface, the effective I/O channel transfer speed for some of the fastest computers on the current market slows down even further to approximately 600 KHz. Since it takes two I/O instructions to deliver eight bits of data to the parallel printer port (for normal printer operations), the net I/O channel transfer speed is now 200 KHz (or 1.6 million bits per second).
If a digital audio device requires a transmission speed 16 bits of data 44100 times per second (44.1 kHz) to the device as does Compact Disk (CD) quality digital audio sound, the required transmission speed of the data is: EQU 16 bits/sample*44100 samples/sec=705.6 Kbits/sec
Therefore, a host computer must spend 705.6 Kbits/1.6 Mbits=44% of its CPU time just for the I/O operations involved in playing the digital audio, and this time does not include the time required to retrieve the digital audio information from storage or manipulating the digital audio information in memory. Even when compressing the digital audio to four bits per sample before transmission to an external communications device connected to a standard parallel printer port, the host CPU must still spend 11% percent of its time for playback of digital audio sound. In multimedia presentations, the combination of slow transmission speed and CPU overhead is unacceptable because the host computer also must attend to a myriad of other duties such as displaying graphics on the video screen or retrieving and processing other data.